Systems for accelerating content delivery via dns overriding

ABSTRACT

An exemplary system for accelerating content delivery via DNS overriding may comprise a network storage device communicatively coupled to a network and storing a routing table for a CDN, the routing table map one or more edge server IP addresses for one or more edge servers to each of one or more geographic regions. The network storage device may be configured to transmit the routing table to one or more DNS servers communicatively coupled to the network.

CROSS REFERENCE TO RELATED PATENT APPLICATIONS

This patent application is related to U.S. patent application Ser. No.______ entitled: “DNS OVERRIDING-BASED METHODS OF ACCELERATING CONTENTDELIVERY” concurrently filed herewith and also assigned to Go DaddyOperating Company, LLC.

FIELD OF THE INVENTION

The present inventions generally relate to delivering website contentand, more particularly, systems and methods for accelerating contentdelivery by overriding the domain name system (DNS) to route a requestfrom a client to a geographically-proximal edge server.

SUMMARY OF THE INVENTION

An example embodiment of a system for accelerating content delivery viaDNS overriding may comprise a network storage device communicativelycoupled to a network and storing a routing table for a CDN. The routingtable may map one or more edge server internet protocol (IP) addressesfor one or more edge servers to each of one or more geographic regions.The network storage device may be configured to transmit the routingtable to one or more DNS servers communicatively coupled to the network.

An example embodiment of a DNS overriding-based method of acceleratingcontent delivery may comprise the steps of at least one server computergenerating a routing table for a CDN. The routing table may map one ormore edge server IP addresses to each of one or more geographic regions.Additional steps may include the at least one server computertransmitting the routing table to one or more DNS server computers,receiving a request from a registrant of a domain name to subscribe thedomain name to the CDN and designating said domain name as subscribed tothe CDN in a DNS zone for the domain name.

The above features and advantages of the present inventions will bebetter understood from the following detailed description taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a possible embodiment of a system for acceleratingcontent delivery.

FIG. 2 illustrates a possible embodiment of a routing table within asystem for accelerating content delivery.

FIG. 3 illustrates a possible embodiment of a system for acceleratingcontent delivery.

FIG. 4 illustrates a possible embodiment of a system for acceleratingcontent delivery.

FIG. 5 is a flow diagram illustrating a possible embodiment of a routingtable within a system for accelerating content delivery.

FIG. 6 is a flow diagram illustrating a possible embodiment of a systemfor accelerating content delivery.

FIG. 7 is a flow diagram illustrating a possible embodiment of a methodfor accelerating content delivery.

FIG. 8 is a possible embodiment of a routing table used within a systemand method for accelerating content delivery.

FIG. 9 is a flow diagram illustrating a possible embodiment of a methodfor accelerating content delivery.

FIG. 10 is a flow diagram illustrating a possible embodiment of a methodfor accelerating content delivery.

FIG. 11 is a flow diagram illustrating a possible embodiment of a methodfor accelerating content delivery.

FIG. 12 is an example embodiment of a system for registering a domainname with a domain name registrar communicatively coupled to theInternet.

DETAILED DESCRIPTION

The present inventions will now be discussed in detail with regard tothe attached drawing figures, which were briefly described above. In thefollowing description, numerous specific details are set forthillustrating the Applicant's best mode for practicing the inventions andenabling one of ordinary skill in the art to make and use theinventions. It will be obvious, however, to one skilled in the art thatthe present inventions may be practiced without many of these specificdetails. In other instances, well-known machines, structures, and methodsteps have not been described in particular detail in order to avoidunnecessarily obscuring the present inventions. Unless otherwiseindicated, like parts and method steps are referred to with likereference numerals.

A network is a collection of links and nodes (e.g., multiple computersand/or other devices connected together) arranged so that informationmay be passed from one part of the network to another over multiplelinks and through various nodes. Examples of networks include theInternet, the public switched telephone network, the global Telexnetwork, computer networks (e.g., an intranet, an extranet, a local-areanetwork, or a wide-area network), wired networks, and wireless networks.

The Internet is a worldwide network of computers and computer networksarranged to allow the easy and robust exchange of information betweencomputer users.

Hundreds of millions of people around the world have access to computersconnected to the Internet via Internet Service Providers (ISPs). Contentproviders (e.g., website owners or operators) place multimediainformation (e.g., text, graphics, audio, video, animation, and otherforms of data) at specific locations on the Internet referred to aswebsites. Websites comprise a collection of connected or otherwiserelated, web pages. The combination of all the websites and theircorresponding web pages on the Internet is generally known as the WorldWide Web (WWW) or simply the Web.

Prevalent on the Web are multimedia websites, some of which may offerand sell goods and services to individuals and organizations. Websitesmay consist of a single webpage, but typically consist of multipleinterconnected and related web pages. Menus and links may be used tomove between different web pages within the website or to move to adifferent website as is known in the art. Websites may be created usingHyper Text Markup Language (HTML) to generate a standard set of tagsthat define how the web pages for the website are to be displayed. Suchwebsites may comprise a collection of HTML and subordinate documents(i.e., files) stored on the Web that are typically accessible from thesame Uniform Resource Locator (URL) and reside on the same server,although such files may be distributed in numerous servers.

Users of the Internet may access content providers' websites usingsoftware known as an Internet browser, such as MICROSOFT INTERNETEXPLORER or MOZILLA FIREFOX. After the browser has located the desiredwebpage, it requests and receives information from the webpage,typically in the form of an HTML document, and then displays the webpagecontent for the user. The user then may view other web pages at the samewebsite or move to an entirely different website using the browser.

Browsers are able to locate specific websites because each website,resource, and computer on the Internet has a unique IP address.Presently, there are two standards for IP addresses. The older IPaddress standard, often called IP Version 4 (IPv4), is a 32-bit binarynumber, which is typically shown in dotted decimal notation, where four8-bit bytes are separated by a dot from each other (e.g.,64.202.167.32). The notation is used to improve human readability. Thenewer IP address standard, often called IP Version 6 (IPv6) or NextGeneration Internet Protocol (IPng), is a 128-bit binary number. Thestandard human readable notation for IPv6 addresses presents the addressas eight 16-bit hexadecimal words, each separated by a colon (e.g.,2EDC:BA98:0332:0000:CF8A:000C:2154:7313).

IP addresses, however, even in human readable notation, are difficultfor people to remember and use. A URL is much easier to remember and maybe used to point to any computer, directory, or file on the Internet. Abrowser is able to access a website on the Internet through the use of aURL. The URL may include a Hypertext Transfer Protocol (HTTP) requestcombined with the website's Internet address, also known as thewebsite's domain. An example of a URL with a HTTP request and domain is:http://www.companyname.com. In this example, the “http” identifies theURL as a HTTP request and the “companyname.com” is the domain.

Websites, unless extremely large and complex or have unusual trafficdemands, typically reside on a single server and are prepared andmaintained by a single individual or entity. Some Internet users,typically those that are larger and more sophisticated, may providetheir own hardware, software, and connections to the Internet. But manyInternet users either do not have the resources available or do not wantto create and maintain the infrastructure necessary to host their ownwebsites. To assist such individuals (or entities), hosting companiesexist that offer website hosting services. These hosting serviceproviders typically provide the hardware, software, and electroniccommunication means necessary to connect multiple websites to theInternet. A single hosting service provider may literally host thousandsof websites on one or more hosting servers.

The DNS is the world's largest distributed computing system that enablesaccess to any resource in the Internet by translating user-friendlydomain names to IP Addresses. The process of translating domain names toIP Addresses is called name resolution. A DNS name resolution is thefirst step in the majority of Internet transactions. The DNS is aclient-server system that provides this name resolution service througha family of servers called domain name servers. The hierarchical domainspace is divided into administrative units called zones. A zone usuallyconsists of a domain (e.g., example.com) and possibly one or more subdomains (e.g., projects.example.com, services.example.com). Theauthoritative data needed for performing the name resolution service iscontained in a file called the zone file and the DNS servers hostingthis file are called the authoritative name servers for that zone.

The DNS infrastructure consists of many different types of DNS servers,DNS clients, and transactions between these entities. An importanttransaction in DNS is the one that provides the core service of DNS(i.e., name resolution service) and is called the DNS query/response. ADNS query/response transaction is made up of a query originating from aDNS client (generically called a DNS resolver) and response from a DNSname server. In this way, the DNS serves as a global, distributeddatabase. Name servers (serving zone files) each contain a small portionof the global domain space.

The DNS may be maintained by a distributed database system, which mayuse a client-server model. Specifically, clients may issue aquery/request using a domain name and the DNS servers may receive thequery/request originating from the client and resolve a domain name toan IP address for a website. The DNS may distribute the responsibilityfor assigning domain names and may map them to IP networks by allowingan authoritative name server for each domain to keep track of its ownchanges. Static addressing may be, but is not necessarily, used in someinfrastructure situations, such as finding the DNS directory host thatmay translate domain names to IP addresses. Static addresses may also beused to locate servers or other network hardware inside a networkenvironment such as the disclosed CDN.

A CDN may comprise a system of networked computers, servers, softwareand other networking components that work together transparently acrossa network to move content closer to end users for the purpose ofimproving performance and scalability. A CDN may include one or morenetwork storage devices storing one or more routing tables, one or moreorigin servers, one or more edge servers and/or one or more DNS serverscommunicatively coupled to a network.

The origin server(s) may be any server that is “upstream,” or higher inthe hierarchy of servers or other network components within the network,based on the direction of resolution of a request or response. The edgeserver(s), possibly one or more clusters of edge servers, may includeone or more servers in the CDN wherein software applications, dataand/or other computer services have been pushed away from centralizedpoints (such as origin server(s)) to the logical “edges” of the network.Using edge servers, information may be replicated across distributednetworks of web servers.

In some CDN models, addressing and routing methodologies may be used toroute packets to one or more potential “receiver” network componentswithin a CDN. These addressing and routing methodologies may include“unicast” addressing and routing (a one-to-one association between adestination address and a single receiver endpoint), “broadcast” or“multicast” addressing and routing (a one-to-many association between asingle sender and multiple simultaneous receiver endpoints) and“anycast” addressing and routing.

An anycast addressing and routing methodology may route packets from asingle “sender” network component to the topologically nearest node in agroup of potential “receivers” identified by the same destinationaddress. Anycast may therefore be considered a one-to-one-of-manyassociation. Because DNS is a distributed service over multiplegeographically dispersed servers, an anycast routing methodology may beused to route packets to the IP addresses determined by the DNS system.These packets may be routed to the “nearest” point within the CDNannouncing a given destination IP address.

As a non-limiting example, a network storage device (storing a routingtable), one or more edge servers and one or more DNS servers may behosted within a single data center. Upon receiving a request to resolvea domain name and/or to retrieve content for a website, the DNSserver(s) may determine an IP address to which to route the request.Using an anycast address and routing methodology, the DNS server(s) maydetermine that the edge server(s) in the same data center comprise the“nearest” point within the CDN that announces the correct destination IPaddress, and may route the request to the edge server(s) within thatdata center accordingly. The edge server(s) within the data center maythen receive the request and resolve the domain name and/or retrieve thewebsite content accordingly.

Applicant has determined, however, that presently-existing DNS systemsand methods using an anycast addressing and routing methodology do notprovide optimal means for accelerating content delivery. As anon-limiting example, the request for domain name resolution and/orwebsite content may be routed to a data center that comprises both DNSserver(s) and edge server(s). As noted above, the DNS server(s) may useanycast to determine that the edge server(s) in the data center are thenearest point to the DNS server(s) announcing the destination IP addressto resolve the request.

The DNS server(s) may make this determination because the DNS server(s)acts as the reference point to determine the “nearest” edge server(s)announcing the destination IP address. However, a second edge server,which also announces the destination IP address, may be running in adata center geographically closer to the requesting client and wouldprovide optimal content delivery acceleration because of its proximityto the client, but may be running in a data center that does not includea DNS server. Because presently-existing DNS systems use the DNS serveras the reference point for anycast addressing and routing, the edgeserver(s) within the data center that includes the DNS server(s) will beconsidered the “nearest” point, as opposed to the edge server(s) thatare, in fact, the “nearest” point to the client that issued the requestand that would therefore provide the optimal content deliveryacceleration within the CDN.

Applicant has therefore determined that optimal content delivery may beaccomplished by configuring a CDN to override the DNS system to route arequest from a client to a geographically-proximal edge server.

Systems for Accelerating Content Delivery

FIG. 1 illustrates an embodiment of a system for accelerating contentdelivery by configuring a CDN to override the DNS system to route arequest from a client to a geographically-proximal edge server. The CDNfor the present inventions may comprise one or more clients 113, one ormore network storage devices 111, one or more origin servers 100, aplurality of edge servers 104, 107 and/or a plurality of DNS servers 110communicatively coupled to a network 101.

The example embodiments illustrated herein place no limitation onnetwork 101 configuration or connectivity. Thus, as non-limitingexamples, the network 101 could comprise the Internet, the publicswitched telephone network, the global Telex network, computer networks(e.g., an intranet, an extranet, a local-area network, or a wide-areanetwork), wired networks, wireless networks, or any combination thereof.System components may be communicatively coupled to the network 101 viaany method of network connection known in the art or developed in thefuture including, but not limited to wired, wireless, modem, dial-up,satellite, cable modem, Digital Subscriber Line (DSL), AsymmetricDigital Subscribers Line (ASDL), Virtual Private Network (VPN),Integrated Services Digital Network (ISDN), X.25, Ethernet, token ring,Fiber Distributed Data Interface (FDDI), IP over Asynchronous TransferMode (ATM), Infrared Data Association (IrDA), wireless, WAN technologies(T1, Frame Relay), Point-to-Point Protocol over Ethernet (PPPoE), and/orany combination thereof.

The one or more network storage devices 111 may store a routing table112 for the CDN that maps one or more server IP addresses 106, 109 toeach of one or more geographic regions, and may be configured totransmit the routing table 112 to any of the one or more servers,possibly to the plurality of DNS servers 110. The network storagedevice(s) 111 may be, as non-limiting examples, one or more routers,switches, servers, database servers or any other network 101 hardware orsoftware capable of generating, storing and/or transmitting a routingtable 112. The routing table(s) 112 may include one or more electronictables, files and/or database objects that store the routes and/ormetrics associated with those routes to particular network 101destinations.

The routing table 112 may be stored within a database or other storagearea in the network storage device 111 and/or within a database and/orcache of any networked computer or network component. The information onthe routing table 112 may further include information about theutilization of the network 101 around it, as described herein. In onenon-limiting example embodiment, the network storage device may comprisea database server running a database storing the routing table 112. Anydatabase and/or data storage described herein may comprise a localdatabase, online database, desktop database, server-side database,relational database, hierarchical database, network database, objectdatabase, object-relational database, associative database,concept-oriented database, entity-attribute-value database,multi-dimensional database, semi-structured database, star schemadatabase, XML database, file, collection of files, spreadsheet, or othermeans of data storage located on a computer, client, server, or anyother storage device known in the art or developed in the future.

The one or more origin servers 100 may be any server that is “upstream,”or higher in the hierarchy of servers or other network 101 componentswithin the network 101, based on the direction of resolution of arequest or response. The origin server(s) 100 may have an origin serverIP address 102 and may host one or more websites 103. The website(s) 130may comprise any collection of data and/or files accessible to a client113 or server communicatively coupled to the network 101. As anon-limiting example, website(s) 103 may comprise a single webpage ormultiple interconnected and related web pages, resolving from a domainname, each of which may provide access to static, dynamic, multimedia,or any other content, perhaps by accessing files (e.g., text, audio,video, graphics, executable, HTML, eXtensible Markup Language (XML),Active Server Pages (ASP), Hypertext Preprocessor (PHP), Flash files,server-side scripting, etc.) that enable the website 103 to display whenrendered by a browser on a client 113 or server. The website's 103 filesmay be organized in a hosting server's file system that may organize thefiles for the storage, organization, manipulation, and retrieval by thehosting server's operating system. A hosting server's file system maycomprise at least one directory that, in turn, may comprise at least onefolder in which files may be stored. In most operating systems, filesmay be stored in a root directory, sub-directories, folders, orsub-folders within the file system.

The one or more edge servers 104, 107 may include one or more servers inthe CDN wherein software applications, data and/or other computerservices have been pushed away from centralized points (such as originserver(s) 100, for example) to the logical “edges” of the network 101.Using edge servers 104, 107, information may be replicated acrossdistributed networks of web servers. The plurality of edge servers 104,107 may include at least a first edge server 104 in a first geographiclocation 105 having a first IP address 106 and a second edge server 107in a second geographic location 108 having a second IP address 109. EachIP address disclosed herein may be any IP address associated withnetwork hardware or software within the network 101. As non-limitingexamples, an IP address may be an origin IP address 102 associated withan origin server 100, a first IP address 106 associated with a firstedge server 104 or a second IP address 109 associated with a second edgeserver 107. The routing table 112 on the network storage device 111 (orany other network device and/or software as disclosed herein) maylikewise contain a route/path used to direct network traffic for an IPAddress to the appropriate network hardware and/or software in theappropriate geographic region.

Any geographic region(s) and/or geographic location(s) disclosed hereinmay comprise, as non-limiting examples, a country, a state, a region ofa country, a continent or a region of a continent. As non-limitingexamples, the geographic location for each of the IP addresses for theclient, the first, second or any additional edge server(s) 104, 107 orany other network hardware or software may be mapped to a geographicregion including a country, a state, a region of a country, a continentor a region of a continent.

The one or more origin servers 100, the plurality of edge servers 104,107, the plurality of DNS servers 110, the one or more database serversand/or any other server(s) described herein may comprise any computer orprogram that provides services to other computers, programs, or userseither in the same computer or over a computer network 101. Asnon-limiting examples, the one of more servers could be application,communication, mail, database, proxy, fax, file, media, web,peer-to-peer, standalone, software, or hardware servers (i.e., servercomputers) and may use any server format known in the art or developedin the future (possibly a shared hosting server, a virtual dedicatedhosting server, a dedicated hosting server, or any combination thereof).

Any of these servers may comprise a computer-readable storage mediastoring instructions that, when executed by a microprocessor, cause theserver(s) to perform the steps for which they are configured. Suchcomputer-readable media may comprise any data storage medium capable ofstoring instructions for execution by a computing device. It maycomprise, as non-limiting examples, magnetic, optical, semiconductor,paper, or any other data storage media, a database or other networkstorage device, hard disk drives, portable disks, CD-ROM, DVD, RAM, ROM,flash memory, and/or holographic data storage. The instructions may, asnon-limiting examples, comprise software and/or scripts stored in thecomputer-readable media that may be stored locally in the server(s) or,alternatively, in a highly-distributed format in a plurality ofcomputer-readable media accessible via the network 101, perhaps via agrid or cloud-computing environment.

Such instructions may be implemented in the form of software modules.Any software modules described herein may comprise a self-containedsoftware component that may interact with the larger system and/or othermodules. A module may comprise an individual (or plurality of) file(s)and may execute a specific task within a larger software and/or hardwaresystem. As a non-limiting example, a module may comprise any softwareand/or scripts running on one or more server(s) containing instructions(perhaps stored in computer-readable media accessible by the servercomputer's computer processor) that, when executed by the computerprocessor, cause the server computer to perform the steps for which itis configured.

The edge server(s) 104, 107 and the DNS server(s) 110 may comprise proxyservers and/or DNS proxy servers. These proxy servers may comprise oneor more intermediary services between one or more servers and one ormore clients 113. The proxy server(s) may be configured to acceleratehosting by caching the routing table 112 and/or web content for thewebsite 103. As a non-limiting example, the one or more edge servers maycomprise a caching proxy server that may cache the content of a websiteand/or a routing table. Responses to requests for actions by the one ormore servers may be accelerated because caching the routing table 112and/or the web content of the website 103 may eliminate computationaloverhead and network traffic created by one or more web servers on theedge servers fetching content from file storage on the origin server100. The one or more proxy servers may also eliminate computationaloverhead and network traffic created by numerous calls to a database onthe origin server 100.

The client(s) 113 may be any computer or program that provides servicesto other computers, programs, or users either in the same computer orover a computer network 101. As non-limiting examples, the client(s) 113may be an application, communication, mail, database, proxy, fax, file,media, web, peer-to-peer, or standalone computer, cell phone, “smart”phone, personal digital assistant (PDA), etc. that may contain anoperating system, a full file system, a plurality of other necessaryutilities or applications or any combination thereof on the client 113.Non limiting example programming environments for client applicationsmay include JavaScript/AJAX (client side automation), ASP, JSP, Ruby onRails, Python's Django, PHP, HTML pages or rich media like Flash, Flex,Silverlight, any programming environments for mobile “apps,” or anycombination thereof.

Client software may be used for authenticated remote access to one morehosting computers or servers, described herein. These may be, but arenot limited to being accessed by a remote desktop program and/or a webbrowser, as are known in the art. Any browser described herein maycomprise any software application for retrieving, presenting, andtraversing information resources on the Web including, but not limitedto, the website(s) 103 described in detail herein.

The DNS server(s) 110 may be configured to determine whether the domainname to be resolved is subscribed to the CDN. In some embodiments, thismay be accomplished by querying a DNS zone file associated with thedomain name to be resolved. A DNS zone file may comprise a text filethat describes a DNS zone and comprises mappings between domain namesand IP addresses and other resources. The DNS zone may comprise a subset(often a single domain) of the hierarchical domain name structure of theDNS. The DNS zone file may be a master file (authoritatively describinga zone) or may list the contents of a DNS cache. The starting point ofeach DNS zone may be specified though use of the $origin keyword withinthe zone file. The DNS zone file may be organized in the form ofresource records (RR). Each DNS zone and/or RR may comprise severalfields, possibly including type-specific data fields.

As a non limiting example, during or subsequent to a domain nameregistration, a request may be received to subscribe the domain name toone or more CDNs. The domain name may be added as a “zone” within a zonefile. The zone for the domain name within the DNS zone file may bedesignated and marked as subscribing the domain name to the one or moreCDNs (possibly by adding a type-specific data field to the DNS zone forthe domain name), indicating that the registered domain name has beensubscribed to the chosen CDN(s) and/or including information definingthe CDN to which the domain name is subscribed.

The DNS zone may further comprise one or more address records used toresolve the domain name to a particular IP address. These records may beabbreviated as A-records for IPv4 IP addresses, or as AAAA-records forIPv6 IP addresses. In some embodiments, these address records may beused by the DNS server(s) 110 to determine the origin server IP addressfor the domain name. As a non-limiting example, the DNS server(s) 110may be configured to query the DNS zone file for the origin server 100IP address 102 for the domain name. The DNS server(s) 110 may isolatethe DNS zone for the domain name, possibly using the $origin keywordwithin the zone for that domain name, and search the DNS zone forinformation about the domain name, possibly including the origin server100 IP address 102 for the domain name, the A and AAAA-records for thedomain name and any type-specific fields designating the domain name assubscribed to the CDN.

If the domain name is not subscribed to the CDN, the DNS server(s) 110may respond to the request to resolve the domain name with the IPaddress 102 for the origin server 100. However, if the domain name issubscribed to the CDN, the DNS server(s) 110 may be configured todetermine a geographic region 114 for the client 113.

In some embodiments, the DNS server(s) 110 may be configured todetermine the geographic region 114 for the client 113 by performing anIP address geolocation on an IP address for any of the client, an ISP400 for the client 113, or one or more other DNS server computers 110.This geolocation may comprise identification of the geographic locationof the client 113, the client's ISP 400 or the other DNS servercomputer(s) 110 and associate this geographic location with an IPaddress, MAC address, image metadata, etc. by automatically looking upthe IP address within a geolocation database that contains the IPaddress data used in firewalls, ad servers, routing, mail systems, websites and other automated systems and retrieving a user's physicaladdress. The IP address may also be associated with geographic regioninformation such as country, region, city, state, postal/zip code,latitude, longitude, time zone, etc.

In some embodiments, the geolocation may be determined by obtaining thecountry code for a given IP address through a DNS-based Blackhole List(DSNBL)-style lookup from a remote server. Additional “deeper” data setsin a geolocation database may be used to determine other geolocationparameters such as domain name, connection speed, ISP, language,proxies, company name, etc. As seen in FIG. 4, the location may be theactual location of the client 113 performing the request or an actualassessed location. In this example embodiment, the client's ISP 440 maybe used to determine the geographic region 114 of the client 113. Inother embodiments, one or more other DNS server(s) 110 may be used todetermine the geographic region 114 of the client 113.

If the geographic region 114 for the client 113 is mapped in the routingtable 112 to a first IP address 106, the DNS server(s) 110 may beconfigured to respond to the request to resolve the domain name with thefirst IP address 106. Likewise, if the geographic region 114 for theclient 113 is mapped in the routing table 112 to a second IP address109, the DNS server(s) 110 may be configured to respond to the requestto resolve the domain name with the second IP address 109.

FIG. 2 represents a non-limiting illustration of this functionality bythe CDN. In this example, the routing table 112 comprises a first IPaddress 106 and a second IP address 109. Six geographic regions arerepresented in this example. Each of the first three geographic regions(Arizona, Texas and Canada) may represent a first geographic region 114for a client 113 subscribed to the CDN that may be mapped to a first IPaddress 106 for a first edge server 104 at a first geographic location105. Each of the second three geographic regions (Germany, Russia andEgypt) may represent a second geographic region 114 for a client 113subscribed to the CDN that may be mapped to the second IP address 109for a second edge server 107 at a second geographic location 108.

As seen in FIG. 3, each of the plurality of edge servers and each of theplurality of DNS server(s) 110 may be hosted in one or more data centers301, 302. Although not shown in FIG. 3, the origin server(s) 100, anyadditional DNS server(s) 110 and/or database servers, the networkstorage device(s) 111 and/or any other server(s) and/or network hardwareand/or software used by the CDN may also be hosted in one or more datacenters such as the data center 302 in the first geographic region 105or the data center 301 in the second geographic region 108.

The data center(s) may provide hosting services for websites, servicesor software relating to the domain information, or any related hostedwebsite including, but not limited to hosting one or more computers orservers in the data center(s) as well as providing the generalinfrastructure necessary to offer hosting services to Internet or othernetwork users including hardware, software, Internet web sites, hostingservers, and electronic communication means necessary to connectmultiple computers and/or servers to the Internet or any other network.

A comparison of data center 301 and data center 302 in FIG. 3illustrates that at least one of the plurality of edge servers(specifically first edge server 104) is running in a datacenter notcomprising one of the plurality of DNS servers 110. In this exampleembodiment, datacenter 301 comprises both the second edge server 107 aswell at least one of the plurality of DNS servers 110. By contrast,datacenter 302 comprises a datacenter running the first edge server 104,but does not comprise one of the plurality of DNS servers.

As a non-limiting example, the CDN may receive a request to resolve adomain name and/or retrieve cached web content from client 113 where thegeographic region 114 of client 113 is in the same first geographicregion 105 as datacenter 302, which is running edge server(s) 104, butdoes not comprise DNS server(s) 110.

From a content delivery acceleration perspective, the edge server 104 indatacenter 302 would be the optimal edge server to act as a proxy serverto serve cached website 103 content to the client 113 that made therequest, because of its physical proximity to the client 113. However,because data center 302 does not comprise DNS server(s) 110, the DNSwill route the request to datacenter 301 in a second geographic location108, which does comprise DNS server(s) 110. An anycast addressing androuting methodology, using DNS server(s) 110 in datacenter 301 as areference point, may recognize a second edge server 107 as the “nearest”proxy server to DNS server(s) 110 with the desired website 103 content.

The disclosed invention provides methods and systems for configuring theCDN to override the DNS system to route a request from the client 113 tothe nearest geographically-proximal edge server 104, 107. Specifically,the DNS server(s) 110 may be configured to receive, from a client 113 ina geographic region 114, the request to resolve a domain name to an IPaddress for a website 103, and if the domain name is subscribed to theCDN, the DNS server(s) 110 may be configured to determine the geographicregion 114 for the client 113, and override the DNS system by respondingto the request with an IP address 106, 109 to which the geographicregion 114 of the client 113 is mapped in a routing table 112, therebyoptimizing content delivery acceleration to the client 113.

FIGS. 3 and 6 show that network storage device 111, comprising adatabase server running a database storing the routing table 112, may beconfigured to generate and transmit the routing table 112 to the DNSserver(s) 110 and periodically update the routing table 112 in the cachememory 300 of the DNS server(s) 110.

The network storage device 111, which may comprise a database serverrunning a database storing at least the routing table 112, may beconfigured to generate the routing table 112 in several ways. Asnon-limiting examples, the CDN may comprise a provisioning systemconfigured to extrapolate previously-entered information to determinethe IP address(es) and the destination hardware resource(s) on which toinstantiate the IP address(es). In some embodiments, the provisioninginformation may be extrapolated via static routing, which may includethe use of fixed routes that may be manually entered by an administratorof a network into, for example, a network router or database server'sconfiguration. Using this configuration information, all routingdecisions may be predetermined and remain static. When network changesoccur, the administrator may update the router configuration to includethe changes. Static routing may be ideal in small network environments.

In other embodiments, the provisioning information may be extrapolatedvia routing protocols that gather and share the routing information usedto maintain and update routing tables and that allow the network todynamically adjust to changing conditions. This routing information mayin turn be used to route a routed protocol to its final destination. Arouting protocol may further be a formula used by routers or othernetwork 101 components to determine the appropriate path onto which datashould be forwarded and may specify how routers or other network 101components report changes and share information with other routers orother network 101 components in a network 101 that they can reach.

Such routing protocols may include link state protocols (e.g., OpenShortest Path First or “OSPF” and Intermediate System to IntermediateSystem or “IS-IS”), which use link state routing to construct a map ofthe connectivity of the network, send information about each node'sneighbors to the entire network and independently calculate the bestnext hop for each possible destination in the network. These routingprotocols may also include distance-vector routing protocols (e.g.,Routing Information Protocol or “RIP,” Interior Gateway Routing Protocolor “IGRP,” Exterior Gateway Protocol or “EGP” or Border Gateway Protocolor “BGP”), which have each node share its routing table with itsneighbors to calculate paths using less computational complexity andmessage overhead. Routing protocols may be ideal in large networkenvironments. The generation of the routing table 112 may therefore bethe primary goal of routing protocols and static routes.

In still other embodiments described in more detail below, informationfor generating the routing table 112 may be queried or extrapolated froma DNS zone file. As a non-limiting example, if the routing table 112 isnot cached on the DNS server(s) 110, the DNS zone file for the domainname may be fetched and data for the routing table 112 may be extractedor extrapolated from the DNS zone file. Such data may be extracted fromthe fields within the DNS zone for the domain name and may include, asnon-limiting examples, the A and/or AAAA-records, the CDN the domainname is subscribed to, location information that the IP addresses aremapped to, etc.

In other words, the zone file may be used as a starting point forcompiling the zone file data into database format. The routing table 112and/or database may further be updated with additional information fromthe domain name zone and/or zone file. As a non-limiting example, eachgenerated routing table 112 may comprise a CDN data field identifyingthe CDN to which each routing table 112 corresponds.

Once generated, the database server may be configured to transmit therouting table 112 to the DNS server(s) 110. In some embodiments, thedatabase server may transmit the routing table 112 to the DNS server(s)110 via a replication chain. Such replication may include a set oftechnologies for copying and distributing data and database objects fromone database to another, possibly over local or wide area networks 101,such as the Internet, and synchronizing between databases to maintainconsistency.

This replication may enable data from a master server, possibly adatabase server comprising a relational database, to be replicated toone or more slave servers, possibly additional database servers eachcomprising one or more relational databases. In some embodiments, wherethe databases change on a regular basis, the replication may betransactional replication. In this model a software agent and/or signalmonitor may monitor the master database server, or “publisher” forchanges in data and transmit those changes to the slave databases or“subscribers,” either immediately or on a periodic basis.

As a non-limiting example in the context of the current embodiments,network storage device 111 may generate a routing table 112 and store itwithin a SQL database on the network storage device 111. The networkstorage device 111 may replicate the routing table 112 via a replicationchain, to the DNS server(s) 110, each of which may temporarily store therouting table in a cache memory 300.

The database server may periodically update the routing table in thecache memory of the DNS server(s) 110. In some embodiments, this updatemay be responsive to a lost connection between the network storagedevice 111 (possibly acting as the database server) and the DNSserver(s) 110. The loss of connection may be determined by a signal thatmay be a limited form of inter-process communication used as anotification sent to a process or to a specific thread within the sameprocess in order to notify it of an event that occurred, in this case aconnection loss or closed terminal. If the process has previouslyregistered a signal handler, that routine is executed. Otherwise adefault signal handler may be executed.

In some embodiments, the signal may be a hangup (possibly a SIGHUP)signal sent to or from a process on the network storage device 111 whena controlling, pseudo or virtual terminal has been closed (possibly dueto a system shut down or reboot) between the network storage device 111and the DNS server(s) 110. Thus, in response to a hangup signal,possibly a SQL hangup signal between the network storage device 111 andthe SQL server(s) 110, the database server may be configured to run aprocess to update the routing table 112 in the cache memory 300 of theDNS server(s) 110.

In some embodiments that utilize a TCP “keepalive” parameter, thenetwork storage device 111 comprising the database server and/or the DNSserver(s) 110 may monitor a connection between them. If the keepaliveparameter determines that this connection is no longer set to “on,” thismay be considered the “transaction” that causes the database server torefresh the routing table 112 stored on the DNS server(s) 110 with a newcopy of the routing table 112 from the network storage device 111. Thiskeepalive parameter may also be used to maintain a connection betweenthe origin server 100 and the edge server(s) to accelerate delivery ofdynamic content for the website 103.

FIG. 4 demonstrates that the request to resolve the domain name may bereceived by one of the DNS server(s) 110 directly from the client 113,an internet service provider 400 for the client 113 or one or more otherDNS servers 110. Furthermore, FIG. 4 demonstrates that the geographicregion 114 of the client 113 may be determined by performing an IPaddress geolocation on an IP address for the client 113. As seen in FIG.4, this may include not only the client's actual location but also anactual assessed location. In this example embodiment, the client's ISP400 may be used to determine the geographic region 114 of the client113. In other embodiments, one or more other DNS server(s) 110 may beused to determine the geographic region 114 of the client 113.

FIG. 5 demonstrates an example routing table 112 used by the DNSserver(s) 110 after determining whether domain name to be resolved issubscribed to a CDN. The routing table 112 may comprise a behavior fieldstoring values for behaviors corresponding to a plurality of geographicregions 114 for the location of the client 113 that issued the requestto resolve the domain name. The behavior for each of the clientgeographic regions may further correspond to a responding edge server's104, 107 IP address 106, 107 for resolving the domain name and/orserving content for the requested website.

As a non-limiting example, if it is determined by the DNS server(s) 110that the domain name is subscribed to a CDN, and further determined thatthe behavior field in the routing table 112 for the geographic location114 for the client 113 comprises an “off” designation, the DNS server(s)110 may be configured to respond to the request to resolve the domainname with an origin server computer 100 IP address 102 for the domainname. Using the example routing table 112 in FIG. 5, if the domain nameis subscribed to the CDN, the client 113 requests resolution of thedomain name from the first geographic region or second geographic regionand the behavior for the client 113 at a location 105, 106 in either ofthese regions includes an “off” designation, the DNS server(s) 110 mayresolve the domain name to content from the origin server 100.

Using the example routing table 112 in FIG. 5, if the domain name issubscribed to the CDN, the client 113 requests resolution of the domainname from the first geographic region and the behavior for the client113 at a location in the first geographic region 105 includes a“primary” designation, the DNS server(s) 110 may resolve the domain namewith a first primary IP address 106 for an edge server 104 in the firstgeographic region. Likewise, if the client 113 requests resolution ofthe domain name from the second geographic region and the behavior forthe client 113 at a location 108 in the second geographic regionincludes a “primary” designation, the DNS server(s) 110 may resolve thedomain name with a second primary IP address 109 for an edge server 107in the second geographic region.

Using the example routing table 112 in FIG. 5, if the domain name issubscribed to the CDN, the client 113 requests resolution of the domainname from the first geographic region and the behavior for the client ata location 105 in the first geographic region includes a “backup”designation, the DNS server(s) 110 may resolve the domain name with abackup first IP address 106 for an edge server 104 in the firstgeographic region. Likewise, if the client requests resolution of thedomain name from the second geographic region and the behavior for theclient 113 at a location 108 in the second geographic region includes a“backup” designation, the DNS server(s) 110 may resolve the domain namewith a second backup IP address 109 for an edge server 107 in the secondgeographic region.

FIG. 6 represents a highly distributed embodiment of the disclosedinventions. In these embodiments, the network storage device 111 maygenerate and transmit the routing table 112 to a plurality of DNSservers 110 each storing the received routing table 112 in a cache 300as previously disclosed.

Thus, in the disclosed embodiments, the CDN may be configured tooverride the DNS system to route a request from a client 113 to ageographically-proximal edge server 104, 107. This may be accomplishedaccording to the CDN environment depicted in FIGS. 1, 3, 4 and 6 usingrouting tables such as those depicted in FIGS. 2 and 5.

Methods for Accelerating Content Delivery

FIG. 7 illustrates an embodiment of a method of accelerating contentdelivery, wherein the CDN is configured to override the DNS system toroute a request from a client 113 to a geographically-proximal edgeserver 104, 107. This embodiment may comprise the steps of generatingone or more routing tables 112 for one or more CDN (the routing table112 mapping one or more edge server 104, 107 IP addresses 105, 109 toeach of one or more geographic regions) (Step 700), transmitting therouting tables to the DNS server(s) 110 (Step 710) as described herein,and receiving a request to subscribe the domain name to a CDN (Step720).

As non-limiting examples, the CDN subscribe request may be received froma registrant of a domain name as the domain name is registered with aregistrar, and/or may be received from a website owner as the website isdeveloped and/or hosted by a hosting provider. In some non-limitingembodiments, the request may be received via a “dashboard” or othercontrol panel on a registrar and/or hosting provider website. After theCDN subscribe request is received, the DNS zone for the domain name maybe updated to designate the domain name as CDN subscribed (Step 730).

FIG. 8 illustrates an example of a plurality of routing tables used toaccelerate content delivery within a CDN. In this example embodiment,the step of at least one server computer generating a routing table(Step 700) may further comprise generating a second through an nthrouting table 112 corresponding to a second through an nth CDN.Likewise, the step of transmitting the routing table 112 to the DNSserver(s) 110 (Step 710) may further comprise the step of transmittingthe second through the nth routing table 112 to the DNS server(s) 110.

This principle may be demonstrated as illustrated in FIG. 8, where afirst routing table 112 for CDN 1 and a second routing table 112 for CDN2 each have been generated. In this example embodiment, each routingtable 112 may comprise a “CDN No.” data field identifying the CDN towhich each routing table 112 corresponds. The routing table 112 data foreach CDN may further comprise one or more IP addresses within the CDN,and each of these IP addresses may be mapped to one or more geographicregions.

In FIG. 8, the routing table 112 data for CDN 1 may include a first anda second IP address 106, 109. The first IP address 106 may be mapped toGeographic Regions 1, 2 and 3 in the routing table 112 and the second IPaddress 109 may be mapped to Geographic Regions 4, 5 and 6 in therouting table 112. The routing table 112 data for CDN 2 may include athird and fourth IP address. The third IP address may be mapped toGeographic Regions 7, 8 and 9 in the routing table 112 and the fourth IPaddress may be mapped to Geographic Regions 10, 11 and 12 in the routingtable 112.

FIG. 9 illustrates an alternate embodiment of a method of acceleratingcontent delivery in a CDN. This embodiment may comprise the steps of oneor more DNS servers 110 receiving a request from a client 113 to resolvea domain name to an IP address for a website (Step 900) and determiningwhether the domain name is subscribed to a CDN (Step 910). If the domainname is determined not to be subscribed to the CDN, the request toresolve the domain name may be responded to and return an origin server100 IP address 102 for the domain name (Step 920).

As seen in FIG. 9, if the domain name is determined to be subscribed toa CDN, further steps may comprise the DNS server(s) 110 determining thegeographic region 114 of the requesting client 113 (Step 930), searchinga routing table 112 that maps one or more edge server 104, 107 IPaddresses 106, 109 to each of one or more geographic regions, for thegeographic region for the client 113 (Step 940), selecting an edgeserver 104, 107 IP address 106, 109 mapped in the routing table 112 tothe geographic region 114 for the client 113 (Step 950) and respondingto the request to resolve the domain name by returning the IP address106, 109 for the edge server 104, 107 (Step 960).

FIG. 10 illustrates an alternate embodiment of a method of acceleratingcontent delivery in a CDN wherein: the step of determining whether thedomain name is subscribed to a CDN (Step 910) further comprises the stepof querying the DNS zone (possibly within the DNS zone file) for thedomain name to determine if the DNS zone has been marked for and/or issubscribed to any of one or more CDNs; the step of identifying, locatingand/or returning the origin server 100 IP address 102 (step 920) furthercomprises the step of locating the origin server 100 IP address 102 inthe A or AAAA-record of the DNS zone for the domain name and/or therouting table 112 (Step 970); and the step of determining the geographicregion of the requesting client 113 (Step 930) further comprises thestep of performing an IP geolocation on the requesting client 113 IPaddress (Step 980) as disclosed herein.

FIG. 11 illustrates an alternate embodiment of a method of acceleratingcontent delivery in a CDN further comprising: subsequent to the step ofdetermining whether the domain name is CDN subscribed (Step 910),determining a behavior field designation in the routing table 112 forthe geographic region for the IP address. If the behavior designation is“Off,” the origin server 100 IP address 102 may be returned. Regardlessof whether the behavior field designation is “Primary” or “Backup,” thesteps of determining a geographic region 114 of the requesting client113 (Step 930), searching a routing table 112 for the geographic region(Step 940) and selecting an edge server 104, 107 IP address 106, 109mapped to the geographic region (Step 950) may be performed. If thebehavior field designation is “Primary,” the edge server 104, 107primary IP address may returned (Step 1100) and if the behavior fielddesignation is “Backup,” the edge server 104, 107 backup IP address maybe returned (Step 1110).

Example Use of Systems and Methods for Accelerating Content Delivery

As seen in the non-limiting example embodiment in FIG. 12, afterregistering a domain name (e.g., example.com) with a domain nameregistrar, a registrant may develop a website 103 and pay a hostingprovider to host the website 103 on the hosting provider's hostingservers, which are communicatively coupled to the Internet. As anon-limiting example, the domain name registrar and hosting provider maybe a single service provider, such as GODADDY.COM.

During the domain name registration and website hosting process,example.com's registrant may choose to subscribe example.com to one ormore CDNs. The appropriate information for the registered domain namemay be updated in the DNS. Specifically, the appropriate DNS zonefile(s) may be updated to include a DNS zone for example.com. Thisinformation may include the domain name, the A and/or AAAA-records and adesignation that the domain name is subscribed to one or more CDNs asfollows:

$ORIGIN example.com. ; start of this zone file in the namespaceexample.com. IN ; example.com used on Internet example.com NS ns ;ns.example.com is a name server for example.com example.com A 192.0.2.1;  IPv4 address for example.com example.com AAAA 2001:db8:10::1 ;  IPv4address for example.com www. CNAME example.com ; www.example.com is analias for example.com CDN 01 example.com. ; example.com is marked assubscribed to CDN01.

One or more DNS servers 110 within CDN01 may use the DNS zone file, anypreviously entered static routes and/or any existing routing protocols,possibly within a provisioning system in the CDN, to generate a routingtable 112. The routing table 112 may include at least the followinginformation:

CDN Behavior Location A A-Backup 01 Off Default-Phoenix 70.1.1.1&260.1.1.1&2 (phx cdn) (dal cdn) 01 Primary Default-Texas 60.1.1.1&250.1.1.1&2 (dal cdn) (can cdn) 01 Backup Default-Canada 50.1.1.1&260.1.1.1&2 (can cdn) (dal cdn)

This routing table may be replicated, possibly via a replication chain,to the DNS server(s) 110 within the CDN and may be temporarily stored incache memory in the DNS server(s) 110. The network 101 hardware andsoftware used to replicate the routing table 112 may be configured tokeep the replicated data synchronized and up to date, possibly bytransmitting new copies of the replication table 112 to the DNSserver(s) 110. If a hangup signal is detected (indicating there has beena loss of connection between the master copy of the routing table 112and the replicated data for the routing table 112), the replicated datamay be refreshed and/or re-transmitted to the DNS server(s) 110 so thatthe data remains current.

A client computer, for example, in the Dallas, Tex. area, may requestcontent from the website 103, possibly using an HTTP and/or TCP request,to resolve the example.com to the website 103. The DNS server(s) 110 mayperform an IP geolocation to determine the geographic location (in thiscase, Dallas) of the client 113, the ISP of the client 400 or anotherDNS server 110 associated with the client 113 that issued the request.

In response to this request, the CDN (possibly via the DNS server(s)110) may query the routing table 112 stored within a database on adatabase server (possibly running on network storage device 111) orwithin the cache of the DNS server(s) 110, for a behavior, an addressrecord, a backup address record or any other routing data correspondingto the CDN for example.com and Dallas, Tex., the location of the client.As a non-limiting example, the DNS server(s) 110 may query the routingtable 112 using the following SQL query: “SELECT Behavior, A, A-BackupFROM tbl WHERE Location=CC OR Location=Default-Dallas ORDER BYLocation=CC DESC LIMIT 1.”

In alternate examples, if the DNS proxy server(s) 110 determines that norouting table was cached, the DNS proxy(s) 110 may fetch the appropriateDNS zone/zone file for example.com, possibly via an SQL request. If theDNS server(s) 110 search the routing table 112 and/or a DNS zone forexample.com and determine that example.com is not mapped to acorresponding CDN, the request may be routed to the origin server 100for example.com.

Returning to the example comprising a cached routing table 112 whereinexample.com is subscribed to a CDN, the DNS server(s) may determine,using the data in the routing table 112, that example.com is subscribedto CDN01. The DNS server(s) 110, having determined that the clientsending the request is in Dallas, Tex. and that example.com issubscribed to CDN01, may respond to the request using the stored routingdata within the example routing table 112. Specifically, the geographicregion 114 for the client 113 is Dallas, Tex., so the DNS server(s) 110may use the routing table 112 to respond to the client's 113 requestusing IP Address 60.1.1.1&2 mapped to an edge server containing thewebsite 103 content in the “Default-Texas” geographic area.

The DNS server(s) 110 may further determine how to respond to therequest using data from the “Behavior” data field within the routingtable 112 to. In this example, for requests that correspond to thebehavior data field with an “off” designation, the DNS server(s) 110 mayrespond to the request to resolve the domain name with an origin serverIP address—the Phoenix origin server in this example. For requests thatcorrespond to the behavior data field with a “primary” designation, theDNS server(s) 110 may respond to the request to resolve the domain namewith a primary IP address for an edge server—the Texas edge server inthis example. For requests that correspond to the behavior data fieldwith a “backup” designation, the DNS server(s) 110 may respond to therequest to resolve the domain name with a backup IP address for an edgeserver—the Canada edge server in this example.

Other embodiments and uses of the above inventions will be apparent tothose having ordinary skill in the art upon consideration of thespecification and practice of the inventions disclosed herein. Thespecification and examples given should be considered exemplary only,and it is contemplated that the appended claims will cover any othersuch embodiments or modifications as fall within the true scope of theinventions.

The Abstract accompanying this specification is provided to enable theUnited States Patent and Trademark Office and the public generally todetermine quickly from a cursory inspection the nature and gist of thetechnical disclosure and in no way intended for defining, determining,or limiting the present inventions or any of its embodiments.

The inventions claimed are:
 1. A content delivery network system,comprising: A) an origin server communicatively coupled to a network andhaving an origin server IP address and hosting a website; B) a pluralityof edge servers communicatively coupled to said network comprising: i) afirst edge server in a first geographic location having a first IPaddress; and ii) a second edge server in a second geographic locationhaving a second IP address; C) a network storage device communicativelycoupled to said network and storing a routing table for a contentdelivery network, said routing table mapping one or more firstgeographic regions to said first IP address and one or more secondgeographic regions to said second IP address; and D) a plurality of DNSservers communicatively coupled to said network and configured to: i)receive a request originating from a client to resolve a domain name toan IP address for said website; ii) determine whether said domain nameis subscribed to a content delivery network; iii) responsive to adetermination that said domain name is not subscribed to said contentdelivery network, respond to said request to resolve said domain namewith said origin server computer IP address; iv) responsive to adetermination that said domain name is subscribed to said contentdelivery network: a) determine a geographic region for said client; b)respond to said request to resolve said domain name with said first IPaddress if said geographic region for said client is mapped to saidfirst IP address in said routing table; and c) respond to said requestto resolve said domain name with said second IP address if saidgeographic region for said client is mapped to said second IP address insaid routing table.
 2. The system of claim 1, wherein said websitecomprises a plurality of files stored on said origin server.
 3. Thesystem of claim 1, wherein at least one of said plurality of edgeservers is running in a datacenter not comprising one of said pluralityof DNS servers.
 4. The system of claim 1, wherein said first geographiclocation, said second geographic location, said one or more firstgeographic regions, or said one or more second geographic regionscomprise a country, a state, a region of a country, a continent, or aregion of a continent.
 5. The system of claim 1, wherein said networkstorage device comprises a database server running a database storingsaid routing table.
 6. The system of claim 5, wherein said databaseserver is configured to transmit said routing table to said plurality ofDNS servers.
 7. The system of claim 6, wherein each of said plurality ofDNS servers comprises a cache memory storing said routing table.
 8. Thesystem of claim 7, wherein said routing table is periodically updated insaid cache memory in said plurality of DNS servers by said databaseserver.
 9. The system of claim 1, wherein said request to resolve saiddomain name is received by one of said plurality of DNS servers directlyfrom said client, an internet service provider for said client, or another DNS server computer.
 10. The system of claim 1, wherein saidplurality of DNS servers are configured to determine whether said domainname is subscribed to said content delivery network by querying a DNSzone for said domain name.
 11. The system of claim 1, wherein saidplurality of DNS servers are configured to determine said origin serverIP address by querying an A-record or an AAAA-record for said domainname.
 12. The system of claim 1, wherein said plurality of DNS serversare configured to determine said geographic region for said client byperforming an IP address geolocation on an IP address for said client,an internet service provider for said client, or an other DNS servercomputer.
 13. The system of claim 1, wherein said plurality of DNSservers are configured to, responsive to a determination that saiddomain name is subscribed to said content delivery network, respond tosaid request to resolve said domain name with an origin server computerIP address for said domain name if a behavior field for said geographiclocation for said client in said routing table comprises an offdesignation.
 14. The system of claim 1, wherein said plurality of DNSservers are configured to, responsive to a determination that saiddomain name is subscribed to said content delivery network, respond tosaid request to resolve said domain name with a primary IP address foran edge server if a behavior field for said geographic location for saidclient in said routing table comprises a primary designation.
 15. Thesystem of claim 1, wherein said plurality of DNS servers are configuredto, responsive to a determination that said domain name is subscribed tosaid content delivery network, respond to said request to resolve saiddomain name with a backup IP address for an edge server if a behaviorfield for said geographic location for said client in said routing tablecomprises a backup designation.
 16. A system, comprising: a networkstorage device communicatively coupled to a network and storing arouting table for a content delivery network, said routing table mappingone or more edge server IP addresses for one or more edge servers toeach of one or more geographic regions, said network storage deviceconfigured to transmit said routing table to one or more DNS serverscommunicatively coupled to said network.
 17. The system of claim 16,wherein said network storage device comprises a database server runninga database storing said routing table.
 18. The system of claim 17,wherein said database server is configured to generate said routingtable.
 19. The system of claim 17, wherein said database server isconfigured to transmit said routing table to said one or more DNSservers via a replication chain.
 20. The system of claim 17, whereinsaid routing table is temporarily stored in said one or more DNS serversin a cache memory.
 21. The system of claim 20, wherein said databaseserver is further configured to update said routing table in said cachememory of said one or more DNS server computers in response to a hangupsignal.
 22. The system of claim 16, wherein at least one of saidplurality of edge servers is running in a datacenter not comprising oneof said plurality of DNS servers.